/*     */ package blockbuster.math;
/*     */ 
/*     */ import java.util.HashSet;
/*     */ import java.util.Set;
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ public enum Operation
/*     */ {
/*  17 */   ADD("+", 1)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/*  22 */       return a + b;
/*     */     }
/*     */   },
/*  25 */   SUB("-", 1)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/*  30 */       return a - b;
/*     */     }
/*     */   },
/*  33 */   MUL("*", 2)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/*  38 */       return a * b;
/*     */     }
/*     */   },
/*  41 */   DIV("/", 2)
/*     */   {
/*     */ 
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/*  47 */       return a / ((b == 0.0D) ? 1.0D : b);
/*     */     }
/*     */   },
/*  50 */   MOD("%", 2)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/*  55 */       return a % b;
/*     */     }
/*     */   },
/*  58 */   POW("^", 3)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/*  63 */       return Math.pow(a, b);
/*     */     }
/*     */   },
/*  66 */   AND("&&", -3)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/*  71 */       return (null.isTrue(a) && null.isTrue(b)) ? 1.0D : 0.0D;
/*     */     }
/*     */   },
/*  74 */   OR("||", -3)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/*  79 */       return (null.isTrue(a) || null.isTrue(b)) ? 1.0D : 0.0D;
/*     */     }
/*     */   },
/*  82 */   SHIFT_LEFT("<<", 0)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/*  87 */       return ((int)a << (int)b);
/*     */     }
/*     */   },
/*  90 */   SHIFT_RIGHT(">>", 0)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/*  95 */       return ((int)a >> (int)b);
/*     */     }
/*     */   },
/*  98 */   BIT_AND("&", -1)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/* 103 */       return ((int)a & (int)b);
/*     */     }
/*     */   },
/* 106 */   BIT_OR("|", -1)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/* 111 */       return ((int)a | (int)b);
/*     */     }
/*     */   },
/* 114 */   BIT_XOR("^^", -1)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/* 119 */       return ((int)a ^ (int)b);
/*     */     }
/*     */   },
/* 122 */   LESS("<", -2)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/* 127 */       return (a < b) ? 1.0D : 0.0D;
/*     */     }
/*     */   },
/* 130 */   LESS_THAN("<=", -2)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/* 135 */       return (a < b || null.equals(a, b)) ? 1.0D : 0.0D;
/*     */     }
/*     */   },
/* 138 */   GREATER_THAN(">=", -2)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/* 143 */       return (a > b || null.equals(a, b)) ? 1.0D : 0.0D;
/*     */     }
/*     */   },
/* 146 */   GREATER(">", -2)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/* 151 */       return (a > b) ? 1.0D : 0.0D;
/*     */     }
/*     */   },
/* 154 */   EQUALS("==", -2)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/* 159 */       return null.equals(a, b) ? 1.0D : 0.0D;
/*     */     }
/*     */   },
/* 162 */   NOT_EQUALS("!=", -2)
/*     */   {
/*     */     
/*     */     public double calculate(double a, double b)
/*     */     {
/* 167 */       return !null.equals(a, b) ? 1.0D : 0.0D;
/*     */     } };
/*     */   
/*     */   static {
/* 171 */     OPERATORS = new HashSet<>();
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */ 
/*     */     
/* 185 */     for (Operation op : values())
/*     */     {
/* 187 */       OPERATORS.add(op.sign);
/*     */     }
/*     */   }
/*     */   
/*     */   public static final Set<String> OPERATORS;
/*     */   public final String sign;
/*     */   public final int value;
/*     */   
/*     */   public static boolean equals(double a, double b) {
/*     */     return (Math.abs(a - b) < 1.0E-5D);
/*     */   }
/*     */   
/*     */   public static boolean isTrue(double value) {
/*     */     return !equals(value, 0.0D);
/*     */   }
/*     */   
/*     */   Operation(String sign, int value) {
/* 204 */     this.sign = sign;
/* 205 */     this.value = value;
/*     */   }
/*     */   
/*     */   public abstract double calculate(double paramDouble1, double paramDouble2);
/*     */ }


/* Location:              D:\fanbian\[D][龙之核心]DragonCore-2.6.0.3.jar!\blockbuster\math\Operation.class
 * Java compiler version: 8 (52.0)
 * JD-Core Version:       1.1.3
 */